@Allure
2年前 提问
1个回答

sql排序

Simon
2年前

SQL排序方法有:

  • ROW_NUMBER()函数:ROW_NUMBER()函数作用就是将SELECT查询到的数据进行排序,每一条数据加一个序号,他不能用做于数据的排名,一般多用于分页查询。

      select TOP 6 ROW_NUMBER() OVER (ORDER BY GradeName ASC) AS [ROW_NUMBER], GradeNO,GradeName from BasGradeInfo
  • RANK()函数:RANK()函数,顾名思义排名函数,可以对某一个字段进行排名,如果出现相同的,他们的排名是一样的。

      select TOP 6 RANK() OVER (ORDER BY GradeName ASC) AS [RANK], GradeNO,GradeName from BasGradeInfo  
  • DENSE_RANK()函数:DENSE_RANK()函数也是排名函数,和RANK()功能相似,也是对字段进行排名,它和RANK()的不同之处,DENSE_RANK()排名是连续的,RANK()是跳跃的排名,一般情况下用的排名函数就是RANK() 。

      select TOP 6 DENSE_RANK() OVER (ORDER BY GradeName ASC) AS [DENSE_RANK], GradeNO,GradeName from BasGradeInfo
  • NTILE()函数:NTILE()函数可以对序号进行分组处理,将有序分区中的行分发到指定数目的组中。 各个组有编号,编号从一开始。 对于每一个行,NTILE将返回此行所属的组的编号。这就相当于将查询出来的记录集放到指定长度的数组中,每一个数组元素存放一定数量的记录。

      select  NTILE(3) OVER (ORDER BY GradeName ASC) AS [NTILE], GradeNO,GradeName from BasGradeInfo WHERE GradeNO IN('G079','G064','G042','G044','G043','G031')